GtkMisc: Keep gtk_misc_set_alignment working
authorMatthias Clasen <mclasen@redhat.com>
Fri, 23 May 2014 09:56:52 +0000 (05:56 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 24 May 2014 04:48:12 +0000 (00:48 -0400)
Now that labels and images no longer use x/yalign in their code,
we need to make gtk_misc_set_alignment set the h/valign for these
widgets, to keep it stumbling along until its final demise.

https://bugzilla.gnome.org/show_bug.cgi?id=730613

gtk/deprecated/gtkmisc.c

index 303b5e77a1d4e34f3c05fa9cab906f0515c3a539..ff4db12a68cf165e5aef1ca3534b900384acf834 100644 (file)
@@ -27,6 +27,8 @@
 #include "gtkmisc.h"
 #include "gtkintl.h"
 #include "gtkprivate.h"
+#include "gtkimage.h"
+#include "gtklabel.h"
 
 
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
@@ -232,6 +234,28 @@ gtk_misc_set_alignment (GtkMisc *misc,
 
   priv = misc->priv;
 
+  if (GTK_IS_LABEL (misc) || GTK_IS_IMAGE (misc))
+    {
+      GtkAlign halign, valign;
+
+      if (xalign < 0.4)
+        halign = GTK_ALIGN_START;
+      else if (xalign > 0.6)
+        halign = GTK_ALIGN_END;
+      else
+        halign = GTK_ALIGN_CENTER;
+
+      if (yalign < 0.4)
+        valign = GTK_ALIGN_START;
+      else if (yalign > 0.6)
+        valign = GTK_ALIGN_END;
+      else
+        valign = GTK_ALIGN_CENTER;
+
+      gtk_widget_set_halign (GTK_WIDGET (misc), halign);
+      gtk_widget_set_valign (GTK_WIDGET (misc), valign);
+    }
+
   if (xalign < 0.0)
     xalign = 0.0;
   else if (xalign > 1.0)